export type OpenData = Array<Option<number>>
interface OpenCallbackCanceledMeta {
  applied: false
  value: null
}
interface OpenCallbackAppliedMeta {
  applied: true
  value: OpenData
}
export type OpenCallbackMeta = OpenCallbackCanceledMeta | OpenCallbackAppliedMeta
export type OpenCallback = (meta: OpenCallbackMeta) => void
export interface Exposed {
  open: (data: OpenData, callback: OpenCallback) => Promise<void>
}
